#include <windows.h>
#include <string.h>
//#include "bookpa.h"

#define MEMLEN 6

void InsertTitleName(HWND hwnd,TCHAR szFileName[],TCHAR szTitleName[]){
    MENUITEMINFO pNewItem;      //包含关于一个菜单项的信息
    TCHAR        buf[256];
    int          i;
    HMENU        hMenu = GetSubMenu(GetMenu(hwnd),0);        // 菜单窗口句柄
    wsprintf(buf,L"&1 %s",szFileName);                       // 文件名存入buf中
    if(GetMenuItemCount(hMenu) <= 6)                         // 加入分隔符
    {
        InsertMenu(hMenu, 4, MF_BYPOSITION | MF_SEPARATOR,0 ,0);// 插入一个新菜单项到菜单里
    }
    pNewItem.cbSize = sizeof(MENUITEMINFO);                   // 结构的大小,字节
    pNewItem.fType  = MFT_STRING;                             // 设置或返回菜单项的类型，MFT_BITMAP位图；MFT_STRING字符串
    pNewItem.cch    = wcslen(buf);                      // 菜单项文本的长度
    pNewItem.dwTypeData = buf;                                // 菜单项的内容
    pNewItem.fMask = MIIM_TYPE | MIIM_ID | MIIM_DATA;         // 重新获取或设置成员,这个成员可以使用一个或多个这些值
    pNewItem.hSubMenu      = NULL;                            // 下拉菜单或相关联的子菜单的菜单项的句柄
    pNewItem.dwItemData    = 0;                               // 应用程序定义的菜单项相关联的值
    pNewItem.fState        = 0;                               // 菜单项的状态
    pNewItem.hbmpChecked   = 0;                               // 如果条目被选中，这个显示项是位图的句柄
    pNewItem.hbmpUnchecked = 0;                               
    pNewItem.wID           = 2001;                            // wID设置或返回菜单项的ID
    InsertMenuItem(hMenu, 5, TRUE, &pNewItem);                // 插入一个新菜单条目
    if (GetMenuItemCount(hMenu) >= (MEMLEN + 8))              // 判断菜单项是否超出范围
    {
        DeleteMenu(hMenu,(MEMLEN + 5), MF_BYPOSITION);
    }
    if (GetMenuItemCount(hMenu) >= 9)
    {
        for(i = 6; i < GetMenuItemCount(hMenu)-2;i++){
            GetMenuString(hMenu,i,buf,256,MF_BYPOSITION);    // 将指定菜单项的正文字符串拷贝到指定缓冲区
            buf[1] = i % 6+50;
            ModifyMenu(hMenu,i,MF_BYPOSITION | MF_STRING,2002 + i % 6 , buf); // 修改已存在的菜单项
        }
    }
    DrawMenuBar(hwnd);                                       // 重画指定菜单的菜单条
}
